<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <title>总结  &middot; sitename</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="viewport" content="width=device-width, initial-scale=1">


<meta name="description" content="" />

<meta name="keywords" content="">


<meta property="og:title" content="总结  &middot; sitename ">
<meta property="og:site_name" content="sitename"/>
<meta property="og:url" content="https://lvzongcheng.gitee.io/%E6%80%BB%E7%BB%93/" />
<meta property="og:locale" content="en-EN">


<meta property="og:type" content="article" />
<meta property="og:description" content=""/>
<meta property="og:article:published_time" content="2017-12-14T00:00:00Z" />
<meta property="og:article:modified_time" content="2017-12-14T00:00:00Z" />

  

  

<script type="application/ld+json">
  {
    "@context": "http://schema.org",
    "@type": "Article",
    "headline": "总结",
    "author": {
      "@type": "Person",
      "name": "LvZongCheng"
    },
    "datePublished": "2017-12-14",
    "description": "",
    "wordCount":  290 
  }
</script>



<link rel="canonical" href="https://lvzongcheng.gitee.io/%E6%80%BB%E7%BB%93/" />

<link rel="apple-touch-icon-precomposed" sizes="144x144" href="https://lvzongcheng.gitee.io/touch-icon-144-precomposed.png">
<link href="https://lvzongcheng.gitee.io/favicon.png" rel="icon">

<meta name="generator" content="Hugo 0.60.0" />

  <!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->

<link href='https://fonts.googleapis.com/css?family=Merriweather:300%7CRaleway%7COpen+Sans' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="/css/font-awesome.min.css">
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/css/highlight/default.css">

  
  
	<script>
	  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
	  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
	  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
	  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

	  ga('create', 'Your Google Analytics tracking code', 'auto');
	  ga('send', 'pageview');

	</script>

</head>
<body>
  <main id="main-wrapper" class="container main_wrapper has-sidebar">
    <header id="main-header" class="container main_header">
  <div class="container brand">
  <div class="container title h1-like">
  <a class="baselink" href="https://lvzongcheng.gitee.io">
  LvZongCheng

</a>

</div>

  
<div class="container topline">
  
  淡定 执著 进取 自律


</div>


</div>

  <nav class="container nav primary no-print">
  

<a class="homelink" href="https://lvzongcheng.gitee.io">home</a>


  
<a href="https://lvzongcheng.gitee.io/framework" title="Show list of Frameworks">Frameworks</a>

<a href="https://lvzongcheng.gitee.io/java" title="Show list of Java">Java</a>

<a href="https://lvzongcheng.gitee.io/linux" title="Show list of Linux">Linux</a>

<a href="https://lvzongcheng.gitee.io/redis" title="Show list of Redis">Redis</a>

<a href="https://lvzongcheng.gitee.io/sql" title="Show list of SQL">SQL</a>

<a href="https://lvzongcheng.gitee.io/Spring" title="Show list of Spring">Spring</a>

<a href="https://lvzongcheng.gitee.io/tools" title="Show list of Tools">Tools</a>

<a href="https://lvzongcheng.gitee.io/webpage" title="Show list of WebPage">WebPage</a>

<a href="https://lvzongcheng.gitee.io/information" title="Show list of information">information</a>

<a href="https://lvzongcheng.gitee.io/network" title="Show list of network">network</a>

<a href="https://lvzongcheng.gitee.io/%E5%BE%AE%E6%9C%8D%E5%8A%A1" title="Show list of 微服务">微服务</a>

<a href="https://lvzongcheng.gitee.io/%E6%80%BB%E7%BB%93" title="Show list of 总结">总结</a>

<a href="https://lvzongcheng.gitee.io/%E6%9C%BA%E5%99%A8%E8%87%AA%E5%8A%A8%E5%8C%96" title="Show list of 机器自动化">机器自动化</a>

<a href="https://lvzongcheng.gitee.io/%E6%B1%87%E7%BC%96" title="Show list of 汇编">汇编</a>

<a href="https://lvzongcheng.gitee.io/%E8%AE%B0%E4%BA%8B%E6%9C%AC" title="Show list of 记事本">记事本</a>


</nav>

<div class="container nav secondary no-print">
  
<a id="contact-link-email" class="contact_link" rel="me" aria-label="Email" href="mailto:Lyc19880405@163.com">
  <span class="fa fa-envelope-square"></span></a>



<a id="contact-link-github" class="contact_link" rel="me" aria-label="Github" href="https://github.com/enten/hugo-boilerplate">
  <span class="fa fa-github-square"></span></a>




 


















</div>


  

</header>


<article id="main-content" class="container main_content single">
  <header class="container hat">
  <h1>总结
</h1>

</header>

  <div class="container content">
  <h4 id="sql">SQL</h4>
<h6 id="mysql">MySQL</h6>
<p>分页：</p>
<h6 id="oracle">Oracle</h6>
<p>分页：
tnsnames.ora 配置</p>
<h6 id="heading">优化方法</h6>
<h2 id="heading1">存储过程与函数区别</h2>
<h4 id="heading2">框架概述</h4>
<ol>
<li>Cookie:</li>
<li>Session是服务器端使用的一种记录客户端状态的机制。Session保存在服务器上。客户端浏览器
访问服务器的时候，服务器把客户端信息以某种形式记录在服务器上.
实现用户登录
Session对应的类为javax.servlet.http.HttpSession类。每个来访者对应一个Session对象，所有该
客户的状态信息都保存在这个Session对象里。Session对象是在客户端第一次请求服务器的时候创建
的。Session也是一种key-value的属性对，通过getAttribute(Stringkey)和setAttribute(String key，
Objectvalue)方法读写客户状态信息。Servlet里通过request.getSession()方法获取该客户的Session，</li>
</ol>
<h4 id="mvc-">MVC 设计模式</h4>
<p>Model（模型）
View（视图）
Controller（控制器）</p>
<h4 id="java">JAVA基础</h4>
<h6 id="1--">1.  线程</h6>
<p>生命周期：新建（New）、就绪（Runnable）、运行（Running）、阻塞（Blocked）和死亡（Dead）5种状态:
线程池：预先启动一些线程，线程无限循环从任务队列中获取一个任务进行执行，直到线程池被关闭。
显著减少了创建线程的数目，降低创建线程时的开销。
一个线程池包括以下四个基本组成部分：
1、线程池管理器（ThreadPool）：用于创建并管理线程池，包括 创建线程池，销毁线程池，添加新任务；
2、工作线程（PoolWorker）：线程池中线程，在没有任务时处于等待状态，可以循环的执行任务；
3、任务接口（Task）：每个任务必须实现的接口，以供工作线程调度任务的执行，它主要规定了任务的入口，
任务执行完后的收尾工作，任务的执行状态等；
4、任务队列（taskQueue）：用于存放没有处理的任务。提供一种缓冲机制。</p>
<h6 id="2--">2.  反射：</h6>
<p>反射就是把Java类中的各种成分映射成相应的java类
每个类被加载之后，系统就会为该类生成一个对应的Class对象。
（一个class就是一段字节码）
在JAVA中获得Class对象有三种方式:</p>
<ol>
<li>使用Class类的forName(String clazzName)静态方法。（完整类名）
例：Class clazz=Class.forName(&quot;&quot;);</li>
<li>调用某个类的class属性来获取该类对应的Class对象</li>
<li>调用某个类的getClass()方法。（根据实例获得）</li>
</ol>
<h6 id="3--">3.  事务：</h6>
<h6 id="4--">4.  类加载器:</h6>
<p>将类加载到内存中</p>
<p>类加载器之间的父子关系和管辖范围图
BootStrap——（JRE/lib/rt.jar） 
|<br>
ExtClassLoader——(JRE/lib/ext/*。jar)扩展类加载器<br>
|<br>
AppClassLoader——（CLASSPATH指定的所有jar或目录）应用类加载器</p>
<p>ClassLoader   loader= 类.class.getClassLoader();<br>
|&ndash;getClassLoader()返回该类的类加载器<br>
loader.getParent();<br>
|&ndash;getParent()返回委托的父类加载器</p>
<p>自定义类加载器：<br>
ClassLoader的实现类</p>
<h6 id="5--jdbc">5.  jdbc连接池</h6>
<p>建立连接是一个费时的活动<br>
就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接，当需要建立数据库连接
时，只需从“缓冲池”中取出一个，使用完毕之后再放回去。</p>
<h6 id="6--servlet">6.  Servlet</h6>
<p>生命周期：</p>
<p>init（）：在Servlet的生命周期中，仅执行一次init()方法。它是在服务器装<br>
service（）：Servlet的核心，负责响应客户的请求。每当一个客户请求
destroy（）： 仅执行一次，在服务器端停止且卸载Servlet时执行该方法</p>
<p>一个HttpServlet对象，该对象的Service()方法就要调用。
9大内置对象：</p>
<table>
<thead>
<tr>
<th>隐式对象</th>
<th align="right">转译后对应</th>
<th align="center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>request</td>
<td align="right">HttpServletRequest/ServletRequest对象</td>
<td align="center">封装了用户提交的信息</td>
</tr>
<tr>
<td>response</td>
<td align="right">HttpServletRespons/ServletResponse对象</td>
<td align="center">客户的请求做出动态的响应，向客户端发送数据</td>
</tr>
<tr>
<td>session</td>
<td align="right">HttpSession对象</td>
<td align="center">客户首次访问服务器上的一个JSP页面时，JSP引擎产生一个session对象，同时分配一个String类型的ID号</td>
</tr>
<tr>
<td>application</td>
<td align="right">ServletContext对象</td>
<td align="center">服务器启动后创建,直到服务器关闭。所有客户共享这个内置的application对象</td>
</tr>
<tr>
<td>out</td>
<td align="right">JspWriter对象，其内部关联一个PringWriter对象</td>
<td align="center">一个输出流，用来向客户端输出数据</td>
</tr>
<tr>
<td>page</td>
<td align="right">this</td>
<td align="center">JSP网页本身,page对象是当前页面转换后的Servlet类的实例</td>
</tr>
<tr>
<td>config</td>
<td align="right">ServletConfig对象</td>
<td align="center">JSP 的配置信息,JSP 页面通常无须配置，也就不存在配置信息。因此，该对象更多地在Servlet 中有效</td>
</tr>
<tr>
<td>exception</td>
<td align="right">Throwable对象，代表由其他JSP页面抛出的异常对象，只会出现于JSP错误页面(isErrorPage设置为true的JSP页面)</td>
<td align="center">页面中的异常和错误</td>
</tr>
</tbody>
</table>
<p>Servlet与jsp关系</p>
<ol>
<li>Servlet是运行在服务器端的java程序。JSP运行在客户端</li>
<li>JSP是以Servlet为基础开发的</li>
<li>所有基于Java的服务器端编程都是构建在Servlet之上的</li>
</ol>
<p>Servlet与jsp区别：</p>
<ul>
<li>编程方式不同
Servlet 是按照Java规范编写的Java程序，jsp是按照Web规范编写的脚本语言</li>
<li>编译方式不同
Servlet 每次修改后要重新编译才能运行，JSP被JSP容器编译为Servlet</li>
<li>运行速度不同
一个JSP页面在第一次访问时要被编译诚Servlet需要一段时间，再次访问
时.class文件已经生成，JSP引擎可以直接执行.class文件， Servlet比JSP速度块</li>
</ul>
<p>JSP文件必须生成Servlet才能执行</p>
<ol start="7">
<li>数据类型</li>
</ol>
<h6 id="heading3">基本数据类型:</h6>
<p>简单数据类型是不能简化的、内置的数据类型、由编程语言本身定义，它表示了真实的数字、字符和整数。</p>
<h6 id="heading4">引用数据类型：</h6>
<p>从基本类型构造而来的类和其他复杂数据类型。
如:类、接口、数组和字符串。这种类型的变量
并不包含类型的实例，而只是包含对实例的引用。</p>
<p>引用类型的内存单元中只存放对象的地址，而对
象本身存贮在内存堆中，只是简单的引用对象的地址</p>
<h6 id="heading5">区别</h6>
<p>基本数据类型和引用类型的区别主要在于基本数据类
型是分配在栈上的，而引用类型是分配在堆上的（需要java中的栈、堆概念），</p>
<h6 id="heading6">堆栈</h6>
<p>栈 - 有编译器自动分配释放<br>
堆 - 一般由程序员分配释放</p>
<p>栈是机器系统提供的数据结构，而堆则是C/C++函数库提供的。</p>
<p>栈：
有专门的寄存器指向栈所在的地址，有专门的机器指令完成数据入
栈出栈的操作。这种机制的特点是效率高，支持的数据有限，一般
是整数，指针，浮点数等系统直接支持的数据类型，并不直接支持
其他的数据结构</p>
<p>堆：
堆的数据结构并不是由系统(无论是机器系统还是操作系统)支持的，
而是由函数库提供的。基本的malloc/realloc/free函数维护了一套
内部的堆数据结构。当程序使用这些函数去获得新的内存空间时，
这套函数首先试图从内部堆中寻找可用的内存空间，如果没有可以
使用的内存空间，则试图利用系统调用来动态增加程序数据段的内
存大小，新分配得到的空间首先被组织进内部堆中去，然后再以适
当的形式返回给调用者。当程序释放分配的内存空间时，这片内存
空间被返回内部堆结构中，可能会被适当的处理(比如和其他空闲空
间合并成更大的空闲空间)，以更适合下一次内存分配申请。这套复
杂的分配机制实际上相当于一个内存分配的缓冲池(Cache)，使用这
套机制有如下若干原因：</p>
<ol>
<li>系统调用可能不支持任意大小的内存分配。</li>
<li>系统调用申请内存可能是代价昂贵的。系统调用可能涉及用户态和核心态的转换。</li>
<li>没有管理的内存分配在大量复杂内存的分配释放操作下很容易造成内存碎片。</li>
</ol>
<h6 id="heading7">堆和栈的对比</h6>
<p>栈是系统提供的功能，特点是快速高效，缺点是有限制，数据不灵
活；而堆是函数库提供的功能，特点是灵活方便，数据适应面广泛，
但是效率有一定降低。栈是系统数据结构，对于进程/线程是唯一的；
堆是函数库内部数据结构，不一定唯一。不同堆分的内存无法互相操
作。栈空间分静态分配和动态分配两种。静态分配是编译器完成的，
比如自动变量(auto)的分配。动态分配由alloca函数完成。栈的动态
分配无需释放(是自动)，也就没有释放函数。为可移植的程序起见，
栈的动态分配操作是不被鼓励的！堆空间的分配总是动态的，虽然程
序结束时所有的数据空间都会被释放回系统，但是精确的申请内存/释
放内存匹配是良好程序的基本要素</p>
<p>栈和堆中主要放置了四种类型的数据：值类型(Value Type)，引用类型(Reference Type)，指针(Pointer)，指令(Instruction)。</p>
<h4 id="struts2">Struts2</h4>
<p>原理</p>
<h6 id="heading8">拦截器与过滤器的区别：</h6>
<ol>
<li>拦截器是基于java反射机制的，而过滤器是基于函数回调的。</li>
<li>过滤器依赖于servlet容器，而拦截器不依赖于servlet容器。</li>
<li>拦截器只能对Action请求起作用，而过滤器则可以对几乎所有请求起作用。</li>
<li>拦截器可以访问Action上下文、值栈里的对象，而过滤器不能。</li>
<li>在Action的生命周期中，拦截器可以多次调用，而过滤器只能在容器初始化时被调用一次。</li>
</ol>
<h4 id="springmvc">SpringMVC</h4>
<p>原理</p>
<h4 id="spring">Spring</h4>
<p>IOC:
AOP:
事务：</p>
<p>生命周期</p>
<h4 id="mybatis">MyBatis</h4>
<p>缓存</p>
<h5 id="heading9"></h5>
<p>Redis</p>
<h4 id="heading10">全文检索</h4>
<p>Solr</p>
<h4 id="jquery">JQuery</h4>
<p>选择器
基本选择器是 jQuery 中最常用的选择器, 也是最简单的选择器, 
它通过元素 id, class 和标签名来查找 DOM 元素(在网页中 id 
只能使用一次, class 允许重复使用).
|&ndash;1、#id     用法: $(”#myDiv”);    返回值  单个元素的组成的集合
说明: 这个就是直接选择html中的id=”myDiv”
|&ndash;2、Element       用法: $(”div”)     返回值  集合元素
说明: element的英文翻译过来是”元素”,所以element其实就是
html已经定义的标签元素,例如 div, input, a等等.
|&ndash;3、class          用法: $(”.myClass”)      返回值  集合元素
说明: 这个标签是直接选择html代码中class=”myClass”的元素
或元素组(因为在同一html页面中class是可以存在多个同样值的).
|&ndash;4、*          用法: $(”*”)      返回值  集合元素
说明: 匹配所有元素,多用于结合上下文来搜索
|&ndash;5、selector1, selector2, selectorN   <br>
用法: $(”div,span,p.myClass”)    返回值  集合元素
说明: 将每一个选择器匹配到的元素合并后一起返回.你可以指定任
意多个选择器, 并将匹配到的元素合并到一个结果内.其中p.myClass
是表示匹配元素
p class=”myClass”</p>
<p>其他选择器
虽然jQuery对象是包装DOM对象后产生的，但是jQuery无法使用DOM对象的
任何方法，同理DOM对象也不能使用jQuery里的方法。</p>
<p>需要相互转换</p>
<h4 id="spring-boot">Spring boot</h4>
<h4 id="heading11">微服务框架</h4>
<h6 id="heading12">优点：</h6>
<ol>
<li>解决了复杂性问题。</li>
<li>单个服务很容易开发、理解和维护</li>
<li>加快部署速度，使得持续化部署成为可能。</li>
<li>微服务架构模式使得每个服务独立扩展。你可以根据每个服务的规模来部署满足需求的规模</li>
</ol>
<h6 id="heading13">缺点：</h6>
<ol>
<li>微服务应用是分布式系统，由此会带来固有的复杂性</li>
<li>分区的数据库架构</li>
<li>测试一个基于微服务架构的应用也是很复杂的任务</li>
<li>微服务架构模式应用的改变将会波及多个服务</li>
<li>部署一个微服务应用也很复杂
开源框架</li>
</ol>
<h4 id="docker">Docker</h4>
<p>原理
镜像（Image）、容器(Container)、仓库(Repository)
优点：
缺点：</p>
<h4 id="shell">Shell</h4>

</div>


  
</article>
      <footer id="main-footer" class="container main_footer">
  

  <div class="container nav foot no-print">
  
<a href="https://lvzongcheng.gitee.io/license">license</a>


  <a class="toplink" href="#">back to top</a>

</div>

  <div class="container credits">
  
<div class="container footline">
  
  code with <!-- raw HTML omitted --><!-- raw HTML omitted -->


</div>


  
<div class="container copyright">
  
  (c) 2015 yourname.


</div>


</div>

</footer>

    </main>
    
<script type="text/javascript">
  (function() {
    
    
    if (window.location.hostname == "localhost")
      return;
    var dsq = document.createElement('script'); dsq.async = true; dsq.type = 'text/javascript';
    dsq.src = '//your_disqus_shortname.disqus.com/count.js';
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
  })();
</script>



<script src="/js/highlight.pack.js"></script>
<script>hljs.initHighlightingOnLoad();</script>



    
  </body>
</html>

